﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Projeto.Classes.Conexao;
using Projeto.Classes.Objeto;
using Projeto.Utilidades;

namespace Projeto.Formularios
{
    public partial class frmBuscaResponsavel : Form
    {
        public frmBuscaResponsavel()
        {
            InitializeComponent();
        }

        private void btnPesquisa_Click(object sender, EventArgs e)
        {
            searchProduto();
        }

        public void searchProduto()
        {
            Classes.Conexao.Responsavel con = new Classes.Conexao.Responsavel();
            if (con.SelectResponsavel())
            {
                dgvProduto.DataSource = con.dataTable;
                //Deixando colunas invisiveis
                dgvProduto.Columns[constants.COLUMN_RESP_ID].Visible = false;
                dgvProduto.Columns[constants.COLUMN_RESP_TIPO_PESSOA].Visible = false;
                //Configurando nome das colunas
                dgvProduto.Columns[constants.COLUMN_RESP_NOME].HeaderText = constants.DATA_GRID_COLUMN_NOME;
                dgvProduto.Columns[constants.COLUMN_RESP_CNPJ_CPF].HeaderText = constants.DATA_GRID_COLUMN_CODIGO;
                dgvProduto.Columns[constants.COLUMN_RESP_ENDERECO].HeaderText = constants.DATA_GRID_COLUMN_ENDERECO;
                dgvProduto.Columns[constants.COLUMN_RESP_TELEFONE].HeaderText = constants.DATA_GRID_COLUMN_TELEFONE;
                dgvProduto.Columns[constants.COLUMN_RESP_EMAIL].HeaderText = constants.DATA_GRID_COLUMN_EMAIL;
                //tamanho das colunas
                dgvProduto.Columns[constants.COLUMN_RESP_NOME].Width = 150;
                dgvProduto.Columns[constants.COLUMN_RESP_EMAIL].Width = 125;
                dgvProduto.Columns[constants.COLUMN_RESP_ENDERECO].Width = 180;
                dgvProduto.Columns[constants.COLUMN_RESP_TELEFONE].Width = 70;
            }
            else
            {
                MessageBox.Show("Erro! Contacte o administrador.");
            }
        }

        private void dgvProduto_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            btnDelete.Enabled = true;
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Deseja realmente deletar '" +
                dgvProduto.CurrentRow.Cells[constants.COLUMN_RESP_NOME].Value.ToString() + "' ?",
               "Deletar Produto?", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
               == DialogResult.Yes)
            {
                Classes.Conexao.Responsavel con = new Classes.Conexao.Responsavel();
                if (con.DeleteResponsavel(new Classes.Objeto.Responsavel(
                    Convert.ToInt32(dgvProduto.CurrentRow.Cells[constants.COLUMN_RESP_ID].Value))))
                {
                    MessageBox.Show("Registro deletado com sucesso.");
                    searchProduto();
                }
                else
                {
                    MessageBox.Show("Erro. Contacte o suporte.");
                }
            }
        }

        private void dgvProduto_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            frmRegistroResponsavel frmResp = new frmRegistroResponsavel();
            Classes.Objeto.Responsavel respObj = new Classes.Objeto.Responsavel();

            respObj.id_responsavel = Convert.ToInt32(dgvProduto.CurrentRow.Cells[constants.COLUMN_RESP_ID].Value);
            respObj.ds_nome = dgvProduto.CurrentRow.Cells[constants.COLUMN_RESP_NOME].Value.ToString();

            string codigo = dgvProduto.CurrentRow.Cells[constants.COLUMN_RESP_CNPJ_CPF].Value.ToString();
            codigo = codigo.Replace("/","");
            codigo = codigo.Replace(".", "");
            codigo = codigo.Replace("-", "");

            respObj.cd_cnpj_cpf = codigo;
            respObj.ic_tipo_pessoa = Convert.ToInt32(dgvProduto.CurrentRow.Cells[constants.COLUMN_RESP_TIPO_PESSOA].Value);
            respObj.ds_endereco = dgvProduto.CurrentRow.Cells[constants.COLUMN_RESP_ENDERECO].Value.ToString();
            respObj.ds_telefone = dgvProduto.CurrentRow.Cells[constants.COLUMN_RESP_TELEFONE].Value.ToString();
            respObj.ds_email = dgvProduto.CurrentRow.Cells[constants.COLUMN_RESP_EMAIL].Value.ToString();

            frmResp.loadUpdate(respObj);
            frmResp.Show();
            this.Close();
        }
    }
}
